// api/auth.js
// 认证相关的API调用
import { post, get, put } from './request';


/**
 * 用户登录
 * @param {Object} params - 登录参数
 * @param {string} params.username - 用户名
 * @param {string} params.password - 密码
 * @returns {Promise}
 */
export function studentLogin(params) {
  return post('/auth/login', params);
}

/**
 * 用户注册
 * @param {Object} params - 注册参数
 * @param {string} params.email - 邮箱地址
 * @param {string} params.username - 用户名
 * @param {string} params.realName - 真实姓名
 * @param {string} params.password - 密码
 * @returns {Promise}
 */
export function register(params) {
  // 调整参数结构，确保包含必要的字段
  const registerParams = {
    username: params.username,
    password: params.password,
    nickname: params.nickname || params.realName || params.username,
    email: params.email
  };
  return post('/auth/register', registerParams);
}

/**
 * 验证Token是否有效
 * @returns {Promise}
 */
export function validateToken() {
  // 后端没有明确提供token验证接口，可以先保留但添加注释
  console.warn('后端未提供明确的token验证接口，可能需要调整');
  return get('/api/auth/token/validate');
}

/**
 * 刷新Token
 * @param {string} token - 刷新令牌
 * @returns {Promise}
 */
export function refreshToken(token) {
  return post('/auth/refresh-token', { token });
}

/**
 * 登出
 * @param {string} token - 登录时后端返回的token
 * @returns {Promise}
 */
export async function logout(token) {
  try {
    // 调用后端提供的登出接口，将token作为请求体发送
    const res = await post('/auth/logout', { token });
    return res;
  } catch (error) {
    console.error('退出登录失败:', error);
    throw error;
  }
}

/**
 * 获取用户信息
 * @returns {Promise}
 */
export function getUserInfo() {
  return get('/api/user/info');
}

/**
 * 更新用户信息
 * @param {Object} params - 用户信息参数
 * @returns {Promise}
 */
export function updateUserInfo(params) {
  return put('/api/user/profile', params);
}

// 忘记密码相关接口已移除

/**
 * 修改密码
 * @param {Object} params - 修改参数
 * @param {string} params.oldPassword - 旧密码
 * @param {string} params.newPassword - 新密码
 * @returns {Promise}
 */
export function changePassword(params) {
  return put('/api/user/password', params);
}